3.1.5 Kernprogramm - Erweiterung

Grundlangen und Funktionsweise der Kernprogrammerweiterung

Um individuelle Ergänzungen am Kernprogramm vorzunehmen, jedoch ohne dies grundlegend zu verändern, steht in PAKMA die sogenannte Kernprogramm-Erweiterung (aufrufbar über den Menüpunkt Eingaben -> Kernprogramm-Erweiterung oder über Strg+F5) zur Verfügung. Dabei handelt es sich um einen dem Kernprogrammeditor äquivalenten Editor.

Anwendungsbereiche

Änderungen können wiederum nur im Entwicklungsmodus vorgenommen werden.
In der Registrierkarte Initialisierung können Variablen und Konstanten definiert werden, die einmalig beim Compilieren eingelesen werden. Hingegen werden die Einträge des Reiters Ausgabe innerhalb der im Kernprogramm vorhandenen repeat-Schleife platziert und somit ständig abgefragt. Es ist darauf zu achten, dass Variablen nicht doppelt definiert werden. Außerdem müssen neu definierte Größen, falls sie in PAKMA ausgegeben werden sollen, eine entsprechende Zuweisung erhalten, d.h. mit Hilfe des Befehls ausgabe(...) als Ausgabegrößen deklariert werden (s. Abschnitt 3.3 ).

Dies soll nun an zwei Beispielen verdeutlicht werden :

Beispiel 1 : Steuerung von Animationselementen

fallschirmspringer.prv zeigt ein Beispiel für die Verwendung der Kernprogrammerweiterung.

Ziel ist es hier, Animationselemente in Abhängigkeit vom Zustand eines Schalters darzustellen.
Je nach dem, in welcher Position sich der Schalter während dem Ablauf des Projekts gerade befindet, soll ein Fallschirm in der Animation mit dargestellt werden oder nicht. Zusätzlich soll sich der Wert des Luftwiderstands bei geöffnetem Fallschirm ändern.

Die dazu notwendigen Änderungen werden in der Kernprogrammerweiterung vorgenommen.
Zunächst wird der Wert des Schalter über mit dem Befehl Fallschirm:=Schalter(Fallschirm); ausgelesen. Je nach Schalterstellung hat die Größe "Fallschirm" dann den Wert 0 oder 1. Falls der Fallschirm geöffnet ist (if fallschirm=1 then ... ), dann wird mit dem Befehl Element_sichtbar('Fallschirmbild',1) das Bild des Fallschirms im Ausgabenfenster mit angezeigt. Zusätzlich wird dann die Konstante für den Luftwiderstand auf den Wert 5 gesetzt. Ist der Fallschirm dagegen geschlossen (if fallschirm=0 then...), dann wird das Bild des Fallschirms nicht im Ausgabenfenster angezeigt : Element_sichtbar('Fallschirmbild',0) und zusätzlich die Konstante für den Luftwiderstand auf den Startwert 1,5 zurückgesetzt.
Der Quellcode im Ausgabeteil der Kernprogramm-Erweiterung sieht wie folgt aus :


Fallschirm:=Schalter(Fallschirm);
if fallschirm=1 then 
begin
  Element_Sichtbar ('Fallschirmbild',1);
  k=5;
end;
if fallschirm=0 then 
begin
  Element_Sichtbar ('Fallschirmbild',0);
  k=1.5;
end;
Beispiel 2 : Projektsteuerung mithilfe der Ablauftaste

pisa.prv zeigt ein weiteres Beispiel für die Verwendung der Kernprogrammerweiterung.

Ziel ist hier dem Anwender zu ermöglichen, noch vor dem Start des Projekts mit der Ablauftaste die Werte der Konstanten durch Schieber zu verändern.

Ermöglicht wird dies durch die Programmsteuerung durch direktes Abfragen des Zustands der Ablauftaste.
Da das Kernprogramm mit VisEdit erzeugt wurde, ist es notwendig die dazu nötigen Ergänzungen des Quelltextes in der Kernprogramm-Erweiterung vorzunehmen.
Die einzelnen Befehle werden später ausführlich erläutert. Daher beschränken wir uns hier auf einige kurze Bemerkungen zum Verständnis des Quelltext :
Mit dem Befehl ablauf_an(status) wird abgefragt, ob die Ablauftaste gedrückt wurde (status=1) oder nicht (status=0). Die Modellzeit soll erst dann voranschreiten, wenn die Ablauftaste gedrückt wurde.
Daher wird die Schleifenzeit dt durch die Befehlszeile
if ablauf_an=1 then dt:=dt_ else dt:=0;
abhängig vom Status der Ablauftaste gewählt.
Die neue Konstante dt_:=0.1 muss zuvor noch im Initialisierungsteil der Kernprogramm-Erweiterung definiert werden.
Die Werte für die Reibungszahl k, die Anfangsgeschwindigkeit v und die Fallbeschleunigung g sollen solange die Ablauftaste noch nicht aktiviert wurde über die entsprechenden Schieber einstellbar sein.
Schließlich wird noch eine neue Variable vy_alt zur Steuerung des Animationselements "Vektor 2" definiert und in PAKMA ausgegeben. berechnet
Im Ausgabeteil der Kernprogrammerweiterung steht folgender Quelltext :

if ablauf_an=1 then  dt:=dt_ else dt:=0; 
if ablauf_an=0 then begin
  k:=Schieber (k);
  v:=Schieber (v);
  g:=Schieber (g);
end
vy_alt:=v-dv;
ausgabe(vy_alt)

Als Folge sind die Variablen k, v und g solange mit Hilfe der Schieber einstellbar, bis die Ablauftaste aktiviert ist.

Weitere Beispiele zur Verwendung der Kernprogramm-Erweiterung befinden sich im Abschnitt 3.10 Bedienungsfreundliche Ergänzungen im Kernprogramm



weiter mit...

Die Bereichsgrenzen